package cn.itcast.test;

/**
 * @author LT
 * @version 1.0.0
 * @ClassName AppTest2.java
 * @Description TODO
 * @createTime 2020年03月31日 22:15:00
 */

import cn.itcast.dao.cargo.FactoryDao;
import cn.itcast.domain.cargo.Factory;
import cn.itcast.domain.cargo.FactoryExample;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.Date;
import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/applicationContext-dao.xml")
public class AppTest2 {

    @Autowired
    private FactoryDao factoryDao;

    @Test
    public void test01(){
        // 根据主键查找
        // Factory factory = factoryDao.selectByPrimaryKey("10");
        // System.out.println("查到数据："+ factory);

        //insert 与 insertSelective区别
        //insert的方法不管值是否为null，都会插入。
        Factory factory = new Factory();
        factory.setId("002");
        factory.setFactoryName("传智程序员工厂");
        factory.setAddress("津安创意园");
        factory.setCreateTime(new Date());
        factory.setUpdateTime(new Date());
        //insert的方法不管值是否为null，都会插入。
        // factoryDao.insert(factory);

        // 注意： updateByPrimaryKeySelective 那些value不为null，就更新那些  反正  updateByPrimaryKey 更新全部数据
        // insertSelective 只有值不为空的时候才会插入、
        factoryDao.insertSelective(factory);
    }


    //需要根据任意条件查询，如何使用？
    // selectByExample（） 根据条件查询
    @Test
    public void test02(){
        //创建工厂的查询条件
        FactoryExample factoryExample = new FactoryExample();
        //添加查询的条件 标准
        FactoryExample.Criteria criteria = factoryExample.createCriteria();
        criteria.andCtypeEqualTo("货物");
        criteria.andFullNameLike("%祁县%");
        List<Factory> factoryList = factoryDao.selectByExample(factoryExample);
        System.out.println("查询到工厂："+ factoryList);
    }
}
